package w83a.w83aManager;

import java.util.HashMap;
import java.util.List;

import w83a.w83aBeans.W83aLotesPreavisosBean;
import w83a.w83aDAO.W83aFactoriaDAO;


public class W83aLotesPreavisos implements W83aILotesPreavisos {
	public java.util.List buscarLotesPreavisos(w83a.w83aBeans.W83aLotesPreavisosBean param) throws Exception{
		
		List listaLotesPreavisos = W83aFactoriaDAO.getLotesPreavisosDAO().buscarLotesPreavisos(param);
		
		return listaLotesPreavisos;	
	}
	
	
	public w83a.w83aBeans.W83aLotesPreavisosBean detalleLotesPreavisos(W83aLotesPreavisosBean param) throws Exception{
		
		//TODO
		W83aLotesPreavisosBean lote = W83aFactoriaDAO.getLotesPreavisosDAO().detalleLotesPreavisos(param);
		
		return lote;	
	}

	public java.util.List detallePreavisos(W83aLotesPreavisosBean param) throws Exception{
		
		//TODO
		List lote = W83aFactoriaDAO.getLotesPreavisosDAO().detallePreavisos(param);
		
		return lote;	
	}

	public w83a.w83aBeans.W83aLotesPreavisosBean obtenerDetallePreaviso(W83aLotesPreavisosBean param) throws Exception{
		
		//Obtenemos el lote
		W83aLotesPreavisosBean preaviso = W83aFactoriaDAO.getLotesPreavisosDAO().obtenerDetallePreaviso(param);
		
		//obtenemos los sindicatos promotores del lote
		if(preaviso!=null){
			StringBuffer sindicatos = new StringBuffer("");
			
			if(preaviso.getCodsPromotorMulti()!=null && preaviso.getCodsPromotorMulti().length()>0){
				int tamanyoSindicatos = preaviso.getCodsPromotorMulti().length();
				//Los codigos de sindicatos ocupan 3 digitos por lo que dividimos el texto de sindicatos de 3 en 3
				while (tamanyoSindicatos>0){
					if(sindicatos.length()>0){
						sindicatos.append(", ");
					}
					sindicatos.append(preaviso.getCodsPromotorMulti().substring(tamanyoSindicatos-3, tamanyoSindicatos));
					tamanyoSindicatos= tamanyoSindicatos-3;
				}
				
				//Hacemos la busqueda en base de datos de los sindicatos
				preaviso.setSindicatosPromotores(W83aFactoriaDAO.getSindicatosDAO().obtenerSindicatosPreaviso(sindicatos.toString()));
			}else if(preaviso.getCodPromotor()!=null && preaviso.getCodPromotor().length()>0){
				//Hacemos la busqueda en base de datos de los sindicatos
				preaviso.setSindicatosPromotores(W83aFactoriaDAO.getSindicatosDAO().obtenerSindicatosPreaviso(preaviso.getCodPromotor()));
			}
			
		}
		
		return preaviso;	
	}
	
	public HashMap anyadirLotePreavisos(W83aLotesPreavisosBean param) throws Exception {
	
		HashMap res = W83aFactoriaDAO.getLotesPreavisosDAO().anyadirLotePreavisos(param);		

		return res;
	}
	
	
	
	public w83a.w83aBeans.W83aLotesPreavisosBean firmarDocumento(W83aLotesPreavisosBean param) throws Exception{
		
		//TODO
		W83aLotesPreavisosBean lote = W83aFactoriaDAO.getLotesPreavisosDAO().firmarDocumento(param);
		
		return lote;	
	}

	public w83a.w83aBeans.W83aLotesPreavisosBean generarNotificaciones(W83aLotesPreavisosBean param) throws Exception{
		
		//TODO
		W83aLotesPreavisosBean lote = W83aFactoriaDAO.getLotesPreavisosDAO().generarNotificaciones(param);
		
		return lote;	
	}
	public w83a.w83aBeans.W83aLotesPreavisosBean deshacerAltaLote(W83aLotesPreavisosBean param) throws Exception{
		
		//TODO
		W83aLotesPreavisosBean lote = W83aFactoriaDAO.getLotesPreavisosDAO().deshacerAltaLote(param);
		
		return lote;	
	}
}